home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Languguage OS 2
/
Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO
/
language
/
embedded
/
mcu
/
float09.arc
/
EQUATES.SA
< prev
next >
Wrap
Text File
|
1987-03-04
|
6KB
|
306 lines
TTL '6809 FLOATING POINT PACKAGE - COPYRIGHT (C) MOTOROLA 1980'
OPT LLEN=120,NOG
* TTL **** 6809 FLOATING POINT - COPYRIGHT(C) MOTOROLA 1980
*
***********************************************************************
*
* G L O B A L E Q U A T E S
*
* THESE ARE THE GLOBAL EQUATES FOR THE 6809 FP PACKAGE
*
**********************************************************************
*
* BIT VALUES
*
BIT0 EQU 1
BIT1 EQU 2
BIT2 EQU 4
BIT3 EQU 8
BIT4 EQU 16
BIT5 EQU 32
BIT6 EQU 64
BIT7 EQU 128
BIT8 EQU 256
BIT9 EQU 512
BIT10 EQU 1024
BIT11 EQU 2048
BIT12 EQU 4096
BIT13 EQU 8192
BIT14 EQU 16384
BIT15 EQU 32768
*
* CONDITION CODE BITS
* USED IN ORCC TO SET A CC BIT
*
N EQU BIT3
Z EQU BIT2
V EQU BIT1
C EQU BIT0
*
* CONDITION CODE BIT MASKS
* USED IN ANDCC TO CLEAR SINGLE BITS
*
NN EQU $F7
NZ EQU $FB
NV EQU $FD
NC EQU $FE
PAGE
*
*
*
* STACK FRAME EQUATES
*
*
* INITIALIZED BY:
FUNCT EQU 0 IREG/ISTACK
PTOS EQU FUNCT+1 IREG/ISTACK
PFPCB EQU PTOS+2 IREG/ISTACK
RPREC EQU PFPCB+2 IREG/ISTACK
TSTAT EQU RPREC+1 IREG/ISTACK = 0
TPARAM EQU TSTAT+2 IREG/ISTACK
STIKY EQU TPARAM+2 ****************************************
RESULT EQU STIKY+1 * EVERYTHING FROM STICKY TO TYPE1 IS ***
SIGNR EQU RESULT * ZEROED BY ISTACK/IREG ***
EXPR EQU RESULT+1
FRACTR EQU EXPR+2
TYPER EQU FRACTR+9
ARG2 EQU TYPER+1 SET BY GETARG
SIGN2 EQU ARG2
EXP2 EQU ARG2+1
FRACT2 EQU EXP2+2
TYPE2 EQU FRACT2+9
ARG1 EQU TYPE2+1 SET BY GETARG IF DYADIC
SIGN1 EQU ARG1
EXP1 EQU ARG1+1
FRACT1 EQU EXP1+2
TYPE1 EQU FRACT1+9 IXIT (0); CHANGED BY GETARG IF DYADIC
* *************************************
ARGSIZ EQU TYPE2-ARG2+1
*
* STACK CALLS
ISTKPC EQU TYPE1+1 USER'S REGISTERS, SAVED BY PSHS
CCREG EQU ISTKPC+2
DREG EQU CCREG+1
XREG EQU DREG+2
YREG EQU XREG+2
UREG EQU YREG+2
CALLPC EQU UREG+2
*
* REGISTER CALLS
IREGPC EQU TYPE1+1 USER'S REGISTERS; SAVED BY PSHS
PFPCB2 EQU IREGPC+3
PRESUL EQU PFPCB2+2
PARG2 EQU PRESUL+2
PARG1 EQU PARG2+2
*
* TOTAL SIZE OF STACK FRAME
STKSIZ EQU CALLPC+2-FUNCT
*
* SIZE OF STACK FRAME FROM IREG OR ISTACK TO BOTTOM
*
FRMSIZ EQU ISTKPC-FUNCT
*
*
* SIZE OF CALLERS REGS (EXCEPT PC)
*
SIZREG EQU CALLPC-CCREG
*
* OFFSETS FOR INDIVIDUAL ARGUMENTS ON STACK FRAME
*
SIGN EQU 0
EXP EQU SIGN+1
FRACT EQU EXP+2
TYPE EQU FRACT+9
*
* ALIASES FOR SOME STACK FRAME ENTRIES
*
P EQU TPARAM+1 EQUATE USED IN DECBIN
K EQU TPARAM+1 EQUATE USED IN BINDEC
PAGE
*
* ARGUMENT TYPES
*
TYNORM EQU 0
TYZERO EQU 2
TYINF EQU 4
TYNAN EQU 6
TYNNRM EQU 8
*
* EXPONENT BIASES
SBIAS EQU 127 SINGLE PRECISION BIAS
DBIAS EQU 1023 DOUBLE PRECISION BIAS
*
* MISCELLANEOUS EQUATES
*
BIGIOP EQU 17 MAXIMUM LEGAL IOP NUMBER
POFF EQU 25 OFFSET TO P IN BCD STRING
PAGE
*
*
* FPCB REGISTER BYTE EQUATES
*
*
* FPCB REGISTER EQUATES
*
CTL EQU 0 CONTROL REG
ENB EQU 1 ENABLE BYTE
ERR EQU 2 ERROR STATUS BYTE
SS EQU 3 SECONDARY STATUS
* OFFSET OF ADDRESS TO JUMP TO FOR TRAP
TRAPV EQU 4 TRAP VECTOR
*
*
*
* CONTROL BYTE
*
CTLAFF EQU BIT0 AFFINE/PROJECTIVE FLAG
CTLRND EQU BIT1+BIT2 ROUNDING MODE
CTLNRM EQU BIT3 NORMALIZE FLAG
CTLSIZ EQU BIT5+BIT6+BIT7
*
* ERROR STATUS BYTE
*
ERRIOP EQU BIT0 IOP ERROR
ERROVF EQU BIT1 OVERFLOW ERROR
ERRUNF EQU BIT2 UNDERFLOW ERROR
ERRDZ EQU BIT3 DIVIDE BY ZERO ERROR
ERRUN EQU BIT4 UNORDERED COMPARE ERROR
ERRIOV EQU BIT5 INTEGER OVERFLOW ERROR
ERRINX EQU BIT6 INEXACT ERROR
*
* TRAP ENABLE BYTE
*
ENBIOP EQU BIT0 INVALID OPERATION
ENBOVF EQU BIT1 OVERFLOW
ENBUNF EQU BIT2 UNDERFLOW
ENBDZ EQU BIT3 DIVIDE BY ZERO
ENBUN EQU BIT4 UNORDERED
ENBIOV EQU BIT5 INTEGER OVERFLOW
ENBINX EQU BIT6 INEXACT
*
* PRECISION MODES IN CONTROL BYTE
*
PRSIN EQU 00 SINGLE
PRDBL EQU BIT5 DOUBLE
PREXT EQU BIT6 EXTENDED
PREFS EQU BIT5+BIT6 EXTENDED FORCE TO SINGLE
PREFD EQU BIT7 EXTENDED FORCED TO DOUBLE
*
* ROUNDING MODES IN CONTROL BYTE
*
*
RN EQU 00 ROUND TO NEAREST
RZ EQU BIT1 ROUND TO ZERO
RP EQU BIT2 ROUND TO PLUS INFINITY
RM EQU BIT2+BIT1 ROUND TO MINUS INFINITY
*
* CLOSURE MODES IN CONTROL BYTE
*
PROJEC EQU 0 PROJECTIVE CLOSURE
AFFINE EQU BIT0 AFFINE CLOSURE
*
* PRECISION INDEXES IN RPREC
*
SIN EQU 00
DBL EQU 02
EXT EQU 04
EFS EQU 06
EFD EQU 08
CLRFRC EQU 10 (USED BY 'CLRES' FOR ENTIRE FRACTION)
CLRALL EQU 12 (USED BY 'CLRES' FOR ENTIRE ARGUMENT)
*
* SECONDARY STATUS BYTE
*
SSIOP EQU BIT0+BIT1+BIT2+BIT3+BIT4
PAGE
*
*
* FUNCTION CODE EQUATES
*
* BIT 7 = 1 = MIXED SIZE ARGUMENTS (MOV,CMP)
* BIT 6 = 1 = TRAP ON UNORDERED COMPARE
* BIT5-BIT0 = FUNCTION NUMBER
*
*
MIXED EQU BIT7
TONUN EQU BIT6 TRAP ON UNORDERED
*
*
FCADD EQU 0
FCSUB EQU FCADD+2
FCMUL EQU FCSUB+2
FCDIV EQU FCMUL+2
FCREM EQU FCDIV+2
FCCMP EQU FCREM+2+MIXED
FCTCMP EQU FCREM+4+MIXED+TONUN
FCPCMP EQU FCREM+6+MIXED
FCTPCM EQU FCREM+8+MIXED+TONUN
FCSQRT EQU FCREM+10
FCINT EQU FCSQRT+2
FCFIXS EQU FCINT+2
FCFIXD EQU FCFIXS+2
FCMOV EQU FCFIXD+2+MIXED
FCBNDC EQU FCFIXD+4
FCAB EQU FCBNDC+2
FCNEG EQU FCAB+2
*
* THE FOLLOWING OPCODES DO NOT GO THROUGH
* A JUMP-ADDRESS TABLE.
* NOTE: THE 'FCAB' AND 'FCNEG' WILL
* NOT EVEN GO THROUGH THE DISPATCH ROUTINE.
*
FCNOJP EQU FCNEG+2 MARKS OPCODES WITHOUT TABLES
*
FCDCBN EQU FCNOJP
FCFLTS EQU FCDCBN+2
FCFLTD EQU FCFLTS+2
*
* MAX ALLOWABLE OPCODE
*
FCMAX EQU FCFLTD
*
*
* EXPONENT EQUATES
*
* MAXIMUM EXPONENTS
*
SMAXEX EQU $0080 SINGLE
DMAXEX EQU $0400 DOUBLE
EMAXEX EQU $3FFF EXTENDED
*
* MINIMUM EXPONENTS
*
SMINEX EQU $FF81 SINGLE
DMINEX EQU $FC01 DOUBLE
EMINEX EQU $C000 EXTENDED
*
INFEX EQU $7FFF INFINITE EXPONENT
ZEROEX EQU $8000 ZERO EXPONENT INTERNAL FORMAT
*
*
* INS AND OUTS BCD ARRAY EQUATES
*
SE EQU 0 SIGN EXPONENT
SF EQU 5 SIGN FRACTION
EXPDIG EQU 4 NO. OF BCD DIGITS IN EXPONENT
SIGDIG EQU 19 NO. OF BCD DIGITS IN FRACTION
DECEXP EQU 1 START OF BCD EXPONENT
DECSIG EQU 6 START OF BCD FRACTION
*
MAXP EQU 19 MAXIMUM VALUE FOR P ON DECBIN( INS )
MAXK EQU 17 MAXIMUM VALUE FOR K ON BINDEC( OUTS )
*
* SIZES OF STACK FRAME ENTITIES
*
FRACSZ EQU 72 NO. OF BITS IN FRACTION
EXPSIZ EQU 16 NO. OF BITS IN EXPONENT
*
* BOOLEAN EQUATES
*
TRUE EQU 00
FALSE EQU $FF
*
*